// Exemple :  ./poke "Set=Poker&Game=5D81531&MoveId=3LBO7&Turn=2&Move1=4&Gain1=200&Gain2=200&TimeOut=15&Level=0&Referee=http://tournoyons.developpez"


#include<iostream>
#include<stdlib.h>     /* srand, rand */
#include<time.h>       /* time */
#include<string>      
#include<vector>
#include<sstream>

#include "Partie.h"
#include "Partie.cpp" // a retirer ?

using namespace std;


// FUNCTIONS

vector<string> &split(const string &s, char delim, vector<string> &elems) {
    stringstream ss(s);
    string item;
    while (getline(ss, item, delim)) {
        elems.push_back(item);
    }
    return elems;
}


vector<string> split(const string &s, char delim) {
    vector<string> elems;
    split(s, delim, elems);
    return elems;
}

// MAIN
 
int main(int argc, char* argv[]) {

	if (argc != 2) {
		cout << "ERROR: Bad argument." << endl;
		return EXIT_FAILURE;
	}

	string arguments = argv[1] ;

	vector<string> x = split(arguments, '&');

	string paramval;
	vector<string> param;

	Partie partieencours;

	for( vector<string>::iterator i = x.begin(); i != x.end(); ++i) {
    	// cout << *i << endl;
		paramval = *i;
		param = split(paramval, '=');
		if (param[0]=="Set") {
			partieencours.setSet(param[1]);
		}

		if (param[0]=="Game") {
			//istringstream iss( param[1] );
			//int nb ;
			//iss >> nb;
			partieencours.setgame(param[1]);
		}

		if (param[0]=="MoveId") {
			partieencours.setmoveid(param[1]);
		}

		if (param[0]=="Turn") {
			partieencours.setturn(param[1]);
		}

		if (param[0]=="Move1") {
			partieencours.setmove1(param[1]);
		}

		if (param[0]=="Gain1") {
			partieencours.setgain1(param[1]);
		}

		if (param[0]=="Gain2") {
			partieencours.setgain2(param[1]);
		}		

		if (param[0]=="TimeOut") {
			partieencours.settimeout(param[1]);
		}		

		if (param[0]=="Level") {
			partieencours.setlevel(param[1]);
		}

		if (param[0]=="Referee") {
			partieencours.setreferee(param[1]);
		}

		if (param[0]=="Status") {
			partieencours.setstatus(param[1]);
		}

		if (param[0]=="Tray") {
			partieencours.settray(param[1]);
		}		

	}

	partieencours.printall();

	return EXIT_SUCCESS;
}
